This invention relates, in general, to facilitating processing within a processing environment, and more specifically, to managing processing associated with floating point operations. Even more specifically, the preferred embodiment of the invention relates to a floating-point operation instruction, which augments the IBM z/Architecture® and can be emulated by other architectures.
Floating point is used to represent real numbers on computers. There are different types of floating point arithmetic, including binary floating point and decimal floating point, as examples. Floating point numbers are discussed in IEEE STD 754-1985, IEEE Standard for Binary Floating-Point Arithmetic; and in IEEE STD 854-1987, IEEE Standard for Radix-Independent Floating-Point Arithmetic, which are hereby incorporated herein by reference in their entirety.
Binary floating-point numbers are represented in computer hardware as base two (binary) fractions. While binary floating point has been very valuable over the years, there are some limitations with binary floating-point operations. For instance, binary floating point cannot represent some decimal fractions, such as 0.1; and the scaling of binary floating point requires rounding. Due to the limitations of binary floating point, decimal floating point has evolved for use in computational processing in computers and other processing environments.
Decimal floating point is easier to comprehend, since decimal data is the most common of all numeric data. A decimal floating-point finite number includes a sign bit, an exponent and a significand. The sign bit is zero for plus and one for minus. The exponent, a signed value, is represented as an unsigned binary value by adding a bias, resulting in a biased exponent. The significand includes a string of decimal digits, where each digit is an integral value between zero and one less than the radix (i.e., 10 is the radix for decimal). The number of digit positions in the significand is called the precision of the floating-point number. The numerical value of a decimal floating-point finite number is represented as (−1)sign×significand×10exponent. The value of 1×10exponent is called the quantum.
Floating point numbers may be represented in a variety of data formats: short, long, or extended. For example, for decimal floating-point numbers, the short format includes 32 bits, the long format includes 64 bits, and the extended format includes 128 bits.
A computer system or machine may be provided with a multitude of floating point operation functions. For instance, an instruction may be provided to convert from binary to decimal, another instruction may convert from hexadecimal to binary. Such instructions may provide for selecting any one of the short, long and extended formats. Other functions, known in the art, may be provided for overflow control, underflow control, suppression control and exception control.
Not all available functions are installed on every computer, however. Presently there is not available a floating point operation instruction that instructs the computer both to determine whether a requested floating point function is installed on the computer, and, if the function is installed, to perform that function.